package com.wyp.design.pattern.creational.singleton.lazy.v2;


/**
 * 懒汉式加载以及线程安全
 *
 * @author: yipeng.wang01@hand-china.com-25490
 * @TIME: 2020/1/2/13:40
 **/
public class LazySingleton {
    private static LazySingleton lazySingleton = null;

    private LazySingleton() {
    }

    /**
     * synchronized 用在静态方法上是将整个类的class文件进行加锁。相当于方法体中使用
     *  synchronized (LazySingleton.class) {
     *
     *         }
     *         这样使用锁的范围还是比较大的，对性能的影响还是比较大的，所以需要进行继续改进。
     *
     * @return
     */
    public static synchronized LazySingleton getInstance() {

        if (lazySingleton == null) {
            lazySingleton = new LazySingleton();
        }
        return lazySingleton;
    }
}
